#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cctype>
#include <regex>

std::string analyze_words(const std::string& input_str) {
    if (input_str.empty() || std::count(input_str.begin(), input_str.end(), ' ') <= 0) {
        return "Мало данных для анализа";
    }

    std::vector<std::string> words;
    std::string word;
    std::istringstream iss(input_str);
    while (iss >> word) {
        words.push_back(word);
    }

    size_t num_words = words.size();
    size_t num_capital_cyrillic = std::count_if(words.begin(), words.end(), [](const std::string& word) {
        return std::regex_match(std::string(1, word[0]), std::regex("[А-Я]"));
    });
    size_t num_latin_char = std::count_if(words.begin(), words.end(), [](const std::string& word) {
        return std::regex_search(word, std::regex("[a-zA-Z]"));
    });
    size_t num_short_words = std::count_if(words.begin(), words.end(), [](const std::string& word) {
        return word.length() <= 3;
    });
    size_t num_hyphen_words = std::count_if(words.begin(), words.end(), [](const std::string& word) {
        return word.find('-') != std::string::npos;
    });

    auto longest_word = *std::max_element(words.begin(), words.end(), [](const std::string& a, const std::string& b) {
        return a.length() < b.length();
    });
    size_t longest_word_length = longest_word.length();

    std::string result;
    result += "Кол-во слов: " + std::to_string(num_words) + "\n";
    result += "Кол-во слов с заглавной кириллической буквы: " + std::to_string(num_capital_cyrillic) + "\n";
    result += "Кол-во слов содержащих латинский символ: " + std::to_string(num_latin_char) + "\n";
    result += "Кол-во слов не превышающих 3 символа: " + std::to_string(num_short_words) + "\n";
    result += "Кол-во слов в составе которых имеется дефис: " + std::to_string(num_hyphen_words) + "\n";
    result += "Самое длинное слово: " + longest_word + "\n";
    result += "Длина слова: " + std::to_string(longest_word_length);

    return result;
}

int main() {
    std::string input_str;
    std::cout << "Введите несколько слов, разделенных пробелом: ";
    std::getline(std::cin, input_str);
    std::cout << analyze_words(input_str) << std::endl;
    return 0;
}

